package com.totem.customer.serivce;

import com.baomidou.mybatisplus.extension.service.IService;
import com.totem.base.model.PageVO;
import com.totem.customer.model.TCustomers;
import com.totem.customer.vo.*;

import javax.validation.constraints.NotEmpty;
import java.util.List;

public interface ITCustomerService extends IService<TCustomers> {
    List<Long> initTestData();
    boolean createRandomCustomer(int count);
    TCustomers findByNickname(@NotEmpty String nickname);
    TCustomers findByMobile(@NotEmpty String countryCode, @NotEmpty String mobile);
    TCustomers findByEmail(@NotEmpty String email);
    boolean createCustomer(CustomerCreateVO vo);

    boolean updateCustomer(CustomerUpdateVO vo);

    PageVO<CustomerVO> customerPage(CustomerPageVO vo);

    CustomerProfileVO profile();

    CustomerVO getVoById(Long id);

    boolean updatePassword(UpdatePasswordVO vo);

    boolean resetPassword(ResetPasswordVO vo);

    boolean updateTxPassword(UpdateTxPasswordVO vo);

    InviteVO searchByEmailOrMobile(SearchByEmailOrMobileVO vo);

    boolean registerCheck(RegisterCheckVO vo);

    TeamInfoVO teamInfo(Long customerId);

    boolean logout();

    TCustomers buildRandomCustomer();

    List<TCustomers> findAdmins();
}
